-
-
Notifications
You must be signed in to change notification settings - Fork 46.6k
camelCase to snake_case conversion - Fixes #9726 #9727
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
camelCase to snake_case conversion - Fixes #9726 #9727
Conversation
camel case to snake case conversion algorithm, including numbers
Please add |
strings/camel_case_to_snake_case.py
Outdated
# Replace all characters that are not letters or numbers with the underscore | ||
snake_str = re.sub(r"[^a-zA-Z0-9]", "_", input_str) | ||
|
||
# Find where lowercase meets uppercase. Insert underscore between them | ||
snake_str = re.sub(r"([a-z])([A-Z])", r"\1_\2", snake_str).lower() | ||
|
||
# Find the sequence of digits at the beginning | ||
snake_str = re.sub(r"^(\d+)", r"\1_", snake_str) | ||
|
||
# Find the sequence of digits at the end | ||
snake_str = re.sub(r"(\d+)$", r"_\1", snake_str) | ||
|
||
# Find where letter meets digits | ||
snake_str = re.sub(r"([a-z])(\d+)", r"\1_\2", snake_str) | ||
|
||
# Find where digits meet letter | ||
snake_str = re.sub(r"(\d+)([a-z])", r"\1_\2", snake_str) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can this be done without using a regex?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add Fixes: #9726 to the description.
Added.
Can this be done without using a regex?
Yes, it can. Although I suspect the code will be longer. I'll get to it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ChrisO345
I have updated the code. It no longer uses regex.
…orithms#9727) * First commit camel case to snake case conversion algorithm, including numbers * code modified to not use regex
camelCase to snake_case conversion algorithm, including numbers
Fixes: #9726
Describe your change:
Checklist: